import java.util.Arrays;
import java.util.HashMap;

public class Demo {
    public int totalFruit(int[] fruits){
        HashMap<Integer,Integer> hash = new HashMap<>();
        int len = 0;
        int left = 0;
        int right = 0;
        while (right < fruits.length){
            //进窗口，right正好在第三个树
            hash.put(fruits[right],hash.getOrDefault(fruits[right],0) + 1);

            if (hash.size() > 2 && right < fruits.length){
                hash.put(fruits[left],hash.get(fruits[left]) - 1);
                if (hash.get(fruits[left]) == 0){
                    hash.remove(fruits[left]);
                }
                left++;
            }
            len = Math.max(len,right - left + 1);
            right++;
        }
        return len;
    }
}